/*
 * Kurzes Beispiel zu einer Gebrauchsart von Guice.
 * - Libraries guice-3.0.jar; aopalliance.jar; javax.inject.jar aus dem Ordner "ext_libs" mueesen unter Libaries hinzugefuegt werden
 *
 * - Zentral ist die PrintModule Klasse, in der die Abhängigkeiten letztendlich definiert werden
 * - Im Gegensatz zu den meisten anderen DI Frameworks, werden bei die Abhängigkeiten bei Guice ausschließlich imn Java Code modeliert
 * 
 *  Weiteres unter:
 *  - https://code.google.com/p/google-guice/
 *
 * - Speziell für JUNIT Tests existieren auch noch verwandte Frameworks wie guiceberry und jukito, das sollte aber für
 *   das kleine Projekt ein bisschen zu oversized sein
 */

package simple_guice_example;

import com.google.inject.Injector;

/**
 *
 * @author cdz
 */
public class GuiceExample {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
       //Injector erfüllt die Abhängigkeiten und injiziert das entsprechende Objekt
       Injector injector = com.google.inject.Guice.createInjector(new PrintModule());
       PrintingService ps = injector.getInstance(PrintingService.class);
       
       ps.lets_print();
       
    }
    
}
